package org.lyc.lanqiao.bank;

import java.util.*;

/**
 * <a href="https://www.lanqiao.cn/problems/5851/learning/?page=1&first_category_id=1&status=2&sort=problem_id&asc=1">
 * 1. FHQ-Treap模板题
 * </a>
 * 给定一个长度为N的整数序列, 初始序列为 1, 2, 3, ..., n
 * 现在对这个整数序列做m次操作, 每次选定两个数字, 并将对应位置的子序列中的所有数字进行翻转
 * 输出内容为经过m次操作后的序列
 * 注意: 第一行输入两个正整数m和n,表示序列长度和操作次数
 * 例如输入
 * 5 4 //序列为5, 操作4次
 * 1 3
 * 3 5
 * 2 3
 * 1 5
 * <p>
 * 经历 1 2 3 4 5 -> 3 2 1 4 5 -> 3 2 5 4 1 -> 3 5 2 4 1 -> 1 4 2 5 3
 * 最终输出为 1 4 2 5 3
 *
 * @author Liu Yicong
 * @date 2024/1/25
 */
public class AFGQTreap {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		//生成递增序列
		List<Integer> result = new ArrayList<>();
		for (int i = 0; i < n; i++) {
			result.add(i + 1);
		}

		int m = scan.nextInt();
		//进行m次操作
		while (m != 0) {
			int a = scan.nextInt();
			int b = scan.nextInt();
			List<Integer> subList = result.subList(a - 1, b);
			Collections.reverse(subList);
			m--;
		}
		scan.close();
		result.forEach(x -> System.out.print(x + " "));
	}
}
